

#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void solve() {
  int n;
  string s;
  cin >> n >> s;
  s = "." + s + ".";
  vector<int> lp(n + 1, 0), rp(n + 1, 0);
  // 从左向右计算连续长度：lp[i] 表示从 i 向左连续 'L' 的长度，rp[i] 表示从 i
  // 向左连续 'R' 的长度
  for (int i = 1; i < n; i++) {
    if (s[i] == 'L') {
      lp[i] = lp[i - 1] + 1;
    }
    if (s[i] == 'R') {
      rp[i] = rp[i - 1] + 1;
    }
  }
  vector<int> ls(n + 1, 0), rs(n + 1, 0);
  // 从右向左计算连续长度：ls[i] 表示从 i 向右连续 'L' 的长度，rs[i] 表示从 i
  // 向右连续 'R' 的长度
  for (int i = n - 1; i >= 1; i--) {
    if (s[i] == 'L') {
      ls[i] = ls[i + 1] + 1;
    }
    if (s[i] == 'R') {
      rs[i] = rs[i + 1] + 1;
    }
  }

  vector<int> d(n + 1, 0); // 差分数组
  for (int i = 0; i < n; i++) {
    // 计算数字 i+1 的区间 [l, r]
    int l = rp[i] + ls[i + 1];
    int r = n - 1 - (lp[i] + rs[i + 1]);
    l = rp[i] + ls[i + 1]; // 在代码中，l 直接使用这个值
    r = n - 1 - (lp[i] + rs[i + 1]);
    d[l]++;
    if (r + 1 < n)
      d[r + 1]--;
  }
  // 前缀和得到最终结果
  int cur = 0;
  for (int i = 0; i < n; i++) {
    cur += d[i];
    cout << cur << ' ';
  }
  cout << endl;
}
int main() {
  int t;
  cin >> t;

  while (t--)
    solve();

  return 0;
}